package com.bawei.module_home.adapter

import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.bawei.module_home.R
import com.bawei.module_home.home.model.entity.SimpleTypeEntity

class VideoSortAdapter(
    private val onItemClick: (channelId: String) -> Unit // 新增点击回调
) : RecyclerView.Adapter<VideoSortAdapter.VideoSortViewHolder>() {

    private val data = arrayListOf<SimpleTypeEntity>()
    private var selectedPosition = 0 // 默认未选中


    fun setData(data: List<SimpleTypeEntity>) {
        this.data.clear()
        this.data.addAll(data)

        notifyDataSetChanged()
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VideoSortViewHolder {

        return VideoSortViewHolder(
            LayoutInflater.from(parent.context).inflate(R.layout.item_sort_video, parent, false)
        )
    }

    override fun getItemCount() = data.size

    override fun onBindViewHolder(holder: VideoSortViewHolder, position: Int) {
        holder.tv.text = data[position].typename
//        // 根据选中状态设置样式
//        if (position == selectedPosition) {
//            holder.tv.setTextColor(Color.RED) // 选中时红色
//            holder.tv.textSize = 18f         // 选中时字体变大（单位：sp）
//        } else {
//            holder.tv.setTextColor(Color.BLACK) // 默认黑色
//            holder.tv.textSize = 14f            // 默认大小
//        }
//        holder.itemView.setOnClickListener {
//            selectedPosition = position // 更新选中位置
//            notifyDataSetChanged()     // 刷新所有item（优化：可用 notifyItemChanged）
//            onItemClick(data[position].channelid) // 点击时回调 channelId
//        }

//优化后的notifyItemChanged
        // 根据选中状态设置样式
        if (position == selectedPosition) {
            holder.tv.setTextColor(Color.RED) // 选中时红色
            holder.tv.textSize = 22f         // 选中时字体变大（单位：sp）
            holder.tv.setTypeface(null, android.graphics.Typeface.BOLD)
        } else {
            holder.tv.setTextColor(Color.BLACK) // 默认黑色
            holder.tv.textSize = 18f            // 默认大小
            holder.tv.setTypeface(null, android.graphics.Typeface.NORMAL)
        }

        holder.itemView.setOnClickListener {
            selectedPosition = position // 更新选中位置
            notifyDataSetChanged()     // 刷新所有item（优化：可用 notifyItemChanged）
            onItemClick(data[position].channelid)
        }
    }


    inner class VideoSortViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        var tv: TextView


        init {
            tv = view.findViewById(R.id.tv)
        }
    }
}